package com.xinggq.user.api.enums;

import lombok.Getter;

/**
 * @Description
 * @Author xinggq
 * @Date 2025/10/31
 */
@Getter
public enum RoleEnum {

  /**
   * 超级管理员 - 拥有系统最高权限，用户初次登入用户
   */
  SUPER_ADMIN("SUPER_ADMIN", "超级管理员","Aa123456"),

  /**
   * 管理员 - 拥有大部分管理权限
   */
  TENANT_ADMIN("TENANT_ADMIN", "管理员","Aa123456"),
  /**
   * 部门管理员 - 创建部门权限
   */
  DEPT_ADMIN("DEPT_ADMIN", "部门管理员","Aa123456"),

  /**
   * 普通用户 - 系统普通用户权限
   */
  USER("USER", "普通用户","Aa123456");

  private final String code;
  private final String name;
  private final String initPassword;

  RoleEnum(String code, String name,String initPassword) {
    this.code = code;
    this.name = name;
    this.initPassword = initPassword;
  }

  /**
   * 根据编码获取枚举值
   *
   * @param code 角色编码
   * @return 对应的角色枚举
   */
  public static RoleEnum fromCode(String code) {
    for (RoleEnum role : RoleEnum.values()) {
      if (role.getCode().equals(code)) {
        return role;
      }
    }
    throw new IllegalArgumentException("No matching role for code: " + code);
  }
}